package com.wentao.thisService.service;

import com.wentao.thisFacade.domain.reqeust.*;
import com.wentao.thisFacade.domain.result.*;
import com.wentao.thisService.model.CompanyCustomEntity;

/**
 * @Auther: ZhaiYanTao
 * @Date: 2020/3/27 10:18
 * @Description: 酒店商家service
 */
public interface CompanyService {
    /**
     * 酒店注册
     *
     * @param entity 酒店注册信息封装
     * @return 注册结果返回
     * @throws Exception 异常信息
     */
    PhoneBackUtilsResult hotelRegister(HotelRegisterRequest hotelRegisterRequest) throws Exception;

    /**
     * 酒店信息录入
     *
     * @param entity 酒店信息封装
     * @return 执行结果
     * @throws Exception 异常信息
     */
    Boolean addCompanyCustom(AddCompanyCustom addCompanyCustom) throws Exception;

    /**
     * 酒店资质录入
     *
     * @param entity 酒店资质封装
     * @return 资质录入结果返回
     * @throws Exception 异常信息
     */
    Boolean operatorInformationEntry(OperatorListRequest operatorListRequest) throws Exception;

    /**
     * 签订协议
     *
     * @param entity 酒店code封装
     * @return 执行结果
     * @throws Exception 异常信息
     */
    SignContractResult signContract(String companyCode) throws Exception;


    /**
     * 根据companyCode查询酒店信息
     *
     * @param entity 查询条件封装
     * @return 返回remark属性表示状态，如果是审核驳回状态用CompanyAddressInfoResult.reason属性来表示驳回原因
     * @throws Exception 异常信息
     */
    CompanyCustomResult hotelDetails(String companyCode) throws Exception;

    /**
     * 酒店审核/酒店资料分页查询
     *
     * @param entity 查询条件封装
     * @return 分页结果
     */
    CompanyCustomPageResult searchHotelGetRegList(HotelPageRequest hotelPageRequest);

    /**
     * 审核酒店
     *
     * @param entity 条件封装
     * @return 审核结果true/false
     */
    Boolean verifyCompany(VerifyCompanyRequest verifyCompanyRequest,Long userId);
}
